package com.briup.corejava.day19;

import java.io.*;

/**
 * 缓冲字符流的操作
 * BufferedReader：readLine，每次读取一行
 * BufferedWriter：newLine，写一个换行符
 * PrintWriter：打印流，里面有输出一行的方法
 */
public class Test4 {
    public static void main(String[] args) {
        FileReader fr = null;
        FileWriter fw = null;
        BufferedReader br = null;
        // 下面两个二选一就行
        BufferedWriter bw = null;
        PrintWriter pw = null;
        // 打印流
        PrintStream ps = null;
        try {
            fr = new FileReader("src/com/briup/corejava/day18/file/a.txt");
            fw = new FileWriter("src/com/briup/corejava/day19/file/a.txt");
            br = new BufferedReader(fr);
            bw = new BufferedWriter(fw);
            pw = new PrintWriter(fw);
            ps = new PrintStream("src/com/briup/corejava/day19/file/b.txt");

            // 设置标准输出的目的地为文件
            System.setOut(ps);

            String line = null;
            while((line = br.readLine()) != null){
                // 先使用官配
                // 输出到控制台
                System.out.println(line);
                // 输出到文件
                // pw.println(line);
                bw.write(line);  // 不会换行
                // 如果还有数据，提供一个换行
                if(br.ready()){
                    bw.newLine();
                }
                // 刷新
                bw.flush();
            }
            System.out.println("操作完毕");

        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
